#include <iostream>
#include <vector>
using namespace std;

/*
    1.迭代器: 行为类似于指针的类对象
        *it 跟指针一样可以解引用得到元素值
        it++ 跟指针一样做加法，往后挪动
    2.注意:end()返回的不是末尾位置，返回的是超尾位置（尾巴的最后一个位置）
    有冗余度 10
*/

int main()
{
    int i;
    vector<int> v1;

    v1.push_back(1);
    v1.push_back(2);
    v1.push_back(3);

    // 迭代器去遍历容器

    // 第一步：定义迭代器对象，指向容器的起始位置
    vector<int>::iterator it = v1.begin();
    for (; it != v1.end(); it++) // 迭代器行为类似指针
    {

        cout << *it << endl;
        *it += 1;
    }

    // 验证迭代器遍历后，容器中的值是否改变
    for (int x : v1)
    {
        cout << x << endl;
    }
}